package CONTABILIDAD_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class CON_RETENCION_COMPROBANTE {

    private Double ID_RETENCION;
    private Double ID_CUENTA_RETENIDA;
    private Double ID_COMPROBANTE;
    private Double GROSSING_UP;
    
    private Conexion con = null;

    public CON_RETENCION_COMPROBANTE() {
    }

    public CON_RETENCION_COMPROBANTE(Double ID_RETENCION, Double ID_CUENTA_RETENIDA, Double ID_COMPROBANTE,double GROSSING_UP) {
        this.ID_RETENCION = ID_RETENCION;
        this.GROSSING_UP=GROSSING_UP;
        this.ID_CUENTA_RETENIDA = ID_CUENTA_RETENIDA;
        this.ID_COMPROBANTE = ID_COMPROBANTE;
    }

    public boolean Insertar() throws SQLException {
        String consulta = "insert into BROKER.CON_RETENCION_COMPROBANTE(ID_RETENCION, ID_CUENTA_RETENIDA,GROSSING_UP, ID_COMPROBANTE) VALUES (" + ID_RETENCION + "," + ID_CUENTA_RETENIDA + "," + GROSSING_UP+ "," + ID_COMPROBANTE + ")";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.CON_RETENCION_COMPROBANTE where ID_RETENCION = " + getID_RETENCION()+" and ID_CUENTA_RETENIDA="+getID_CUENTA_RETENIDA()+" and ID_COMPROBANTE = "+getID_COMPROBANTE();
        con.EjecutarSentencia(consulta);
        return true;
    }
    public boolean EliminarXidComprobante(double id) throws SQLException {
        String consulta = "delete from BROKER.CON_RETENCION_COMPROBANTE where ID_COMPROBANTE = " +id;
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<CON_RETENCION_COMPROBANTE> Todos() throws SQLException {
            String consulta = "select * from BROKER.CON_RETENCION_COMPROBANTE";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
    }
    public List<CON_RETENCION_COMPROBANTE> buscarXidComprobante(double id) throws SQLException {
            String consulta = "select * from BROKER.CON_RETENCION_COMPROBANTE where ID_COMPROBANTE="+id;
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
    }
    
    public List<CON_RETENCION_COMPROBANTE> TodosXcomprobante(double id_comprobante) throws SQLException
    {
            String consulta = "select * from BROKER.CON_RETENCION_COMPROBANTE where ID_COMPROBANTE = "+id_comprobante;
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
    }

    public List<CON_RETENCION_COMPROBANTE> Cargar(ResultSet rs) {
        try {
            List<CON_RETENCION_COMPROBANTE> lista = new ArrayList<CON_RETENCION_COMPROBANTE>();
            while (rs.next()) {
                CON_RETENCION_COMPROBANTE objeto = new CON_RETENCION_COMPROBANTE();
                objeto.setID_RETENCION(rs.getDouble("ID_RETENCION"));
                objeto.setID_CUENTA_RETENIDA(rs.getDouble("ID_CUENTA_RETENIDA"));
                objeto.setGROSSING_UP(rs.getDouble("GROSSING_UP"));
                objeto.setID_COMPROBANTE(rs.getDouble("ID_COMPROBANTE"));
                objeto.setCon(con);
                lista.add(objeto);
            }
            return lista;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public double getID_RETENCION() {
        return ID_RETENCION;
    }

    public void setID_RETENCION(double ID_RETENCION) {
        this.ID_RETENCION = ID_RETENCION;
    }

    public double getID_CUENTA_RETENIDA() {
        return ID_CUENTA_RETENIDA;
    }

    public void setID_CUENTA_RETENIDA(double ID_CUENTA_RETENIDA) {
        this.ID_CUENTA_RETENIDA = ID_CUENTA_RETENIDA;
    }

    public double getID_COMPROBANTE() {
        return ID_COMPROBANTE;
    }

    public void setID_COMPROBANTE(double ID_COMPROBANTE) {
        this.ID_COMPROBANTE = ID_COMPROBANTE;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }

    public Double getGROSSING_UP() {
        return GROSSING_UP;
    }

    public void setGROSSING_UP(Double GROSSING_UP) {
        this.GROSSING_UP = GROSSING_UP;
    }
    
}
